import home_pagePO.Account_ListPO;
import home_pagePO.LoginPO;
import home_pagePO.SearchPO;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.android.AndroidDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;

public class test01 {
    public static AppiumDriver driver;
//    public static AndroidDriver driver;

    @BeforeClass
    public void setUP() throws MalformedURLException {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        //设置所需的浏览器
        capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
        //指定测试平台
        capabilities.setCapability("platformName", "Android");
        //指定测试机的ID,通过adb命令`adb devices`获取
        capabilities.setCapability("deviceName", "127.0.0.1:62025");
        //安卓对应的版本
        capabilities.setCapability("platformVersion", "5.1.1");
        //将上面获取到的包名和Activity名设置为值
        capabilities.setCapability("appPackage", "com.ksbao.nursingstaffs");
        capabilities.setCapability("appActivity", "com.ksbao.nursingstaffs.SplashActivity");
        //noReset，这个参数用来控制是否清除session信息：
        //1、noReset不勾选，如果上一个测试用例登录成功过了，下一个测试用例，在打开app时，进来的还是app打开的初始页面，不会记录登录状态。
        //2、noReset勾选，如果上一个测试用例登陆成功了，下一个测试用例，在打开app时，进来的页面是登录成功后的页面，会保持登录状态
        capabilities.setCapability("noReset", false);
        //每次启动时覆盖session，否则第二次后运行会报错不能新建session
        capabilities.setCapability("sessionOverride", true);
        // 默认选择接受弹窗的条款，有些app启动的时候，会有一些权限的弹
        capabilities.setCapability("autoAcceptAlerts", true);

        driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
//        //支持中文
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

    }

    /**
     * 登录用例
     *
     * @throws Exception
     */
    @Test
    public void Login() throws Exception {
        LoginPO loginPO = new LoginPO(driver);
        loginPO.hone_Login("18278816734", "yt123456");
        Thread.sleep(3000);

//        Assert.assertEquals("","");
    }

    /**
     * 注册
     */
    @Test
    public void Register() {

    }

    /**
     * 忘记密码
     */
    @Test
    public void NoPwd() {

    }

    /**
     * 搜索科目
     */
    @Test
    public void Search() throws Exception {
        Login();
        SearchPO searchPO = new SearchPO(driver);
        searchPO.home_Search("护理");
    }

    /**
     * 切换科目
     */
    @Test
    public void Account_List() throws Exception {
        Login();
        Account_ListPO account_list = new Account_ListPO(driver);
        account_list.account_listPO();

    }

    /**
     *
     */

    @AfterClass
    public void testDowm() {
        driver.quit();
    }
}
